//页面内的全局变量，用于存储后台获得的用户状态enum
var UserStateEnum ;

$(function () {
    //touch页面,记录用户进入页面
    <!--
    $.ajax({
        url : contextPath()+"/mdmis/touch",
        type : "get",
        data : {
            //"traceRandom":trace_random,
            //"recordID":trace_recordID,
            "target":location.pathname,
            "operation":"[进入页面]系统管理-用户管理页面"
        },
        dataType : "json",	// 数据返回类型
        cache : false, 	// 是否缓存
        async : true   	// 默认为true 异步请求
    });
    -->

    //从后台获取到用户状态enum
    $.ajax({
        url : contextPath()+"/auth/getLocalUserStateEnum",
        type : "get",
        data : {
            //"traceRandom":trace_random,
            //"recordID":trace_recordID,
            "target":location.pathname,
            "operation":"[进入页面]"
        },
        dataType : "json",	// 数据返回类型
        cache : false, 	// 是否缓存
        async : true,  	// 默认为true 异步请求
        success: function(res){
                     //UserStateEnum = JSON.parse(res.data); //该语句无法正常执行
                     UserStateEnum = eval('(' + res.data + ')');
                     $('#search_userstatus').combobox({
                        valueField: 'state',
                        textField: 'stateinfo',
                        data: UserStateEnum
                     });
                     $('#id_select_status').combobox({
                        valueField: 'state',
                        textField: 'stateinfo',
                        data: UserStateEnum
                     });
                  }
    });

    $('#datagrid').datagrid({
        loadMsg:'正在加载数据...',
        url:contextPath()+'/auth/getLocalUserList',
        toolbar:'#dgtoolbar',
        queryParams: form2Json("searchform"),
        pagination: true,
        pageSize:'20',
        pageList:[20,50,100],
        rownumbers: true,
        striped: true,
        fit: true,
        fitColumns: false, //不自动适应列宽
        singleSelect: true, //只能单行选择
        selectOnCheck: true,
        checkOnSelect: true,
        remoteSort: false,
        multiSort: true,
        sortName : 'create_time',
        sortOrder : 'asc', //asc正序，desc逆序
        columns:[[
            //{field:'ck',checkbox:true},
            {field:'username', title:'用户名', halign:'center', aligh:'center', width:100, sortable:true},
            {field:'name_cn',title:'中文名',halign:'center', width:100},
            {field:'status',title:'当前状态',halign:'center', width:100,
                formatter: function(value,row,index){
                    if (value) {
                        for(i=0; i<UserStateEnum.length; i++) {
                            if (UserStateEnum[i].state==value) {
                                return UserStateEnum[i].stateinfo;
                            }
                        }
                        return "";
                    } else {
                        return "";
                    }
                }
            },
            {field:'create_time',title:'创建时间',halign:'center', sortable:true, width:160},
            {field:'last_edit_time',title:'最后修改时间',halign:'center', width:160,},
            {field:'user_id',title:'操作',halign:'left', width:400,
                formatter: function(value,row,index){
                    if (value) {
                        var str = "";
                        for(i=0; i<UserStateEnum.length; i++) {
                            if (UserStateEnum[i].state == row.status) {
                                if (UserStateEnum[i].stateinfo == "未注册") {
                                    str += "<a href='javascript:void(0)' onclick=changeUserStatus('"+index+"','3')>注册</a>";
                                    str += "&nbsp;|&nbsp;";
                                } else if (UserStateEnum[i].stateinfo == "未激活") {
                                    str += "<a href='javascript:void(0)' onclick=changeUserStatus('"+index+"','3')>激活</a>";
                                    str += "&nbsp;|&nbsp;";
                                } else if (UserStateEnum[i].stateinfo == "正常用户") {
                                    str += "<a href='javascript:void(0)' onclick=changeUserStatus('"+index+"','4')>禁用</a>";
                                    str += "&nbsp;|&nbsp;";
                                } else if (UserStateEnum[i].stateinfo == "禁用") {
                                    str += "<a href='javascript:void(0)' onclick=changeUserStatus('"+index+"','3')>解禁</a>";
                                    str += "&nbsp;|&nbsp;";
                                }
                                break;
                            }
                        }
                        str += "<a href='javascript:void(0)' onclick=modifypassword('"+index+"')>修改密码</a>";
                        str += "&nbsp;|&nbsp;";
                        str += "<a href='javascript:void(0)' onclick=modifyLocalUser('"+index+"')>编辑信息</a>";
                        str += "&nbsp;|&nbsp;";
                        str += "<a href='javascript:void(0)' onclick=removeLocalUser('"+index+"')>删除用户</a>";
                        return str;
                    } else {
                        return "";
                    }
                }
            }
        ]]
    });


    //点击搜索
    $("#submit_search").linkbutton({ iconCls: 'icon-search', plain: true }).click(function () {
        $('#datagrid').datagrid({ queryParams: form2Json("searchform") });
    });
    //点击重置
    $("#reset_search").linkbutton({ iconCls: 'icon-reload', plain: true }).click(function () {
        $('#search_username').textbox('setValue',''); //将用户名的输入框清空
        $('#search_name_cn').textbox('setValue',''); //将中文名的输入框清空
        $('#search_userstatus').combobox('clear'); //将用户状态选择框清空
        //$('#datagrid').datagrid('reload');
        $('#datagrid').datagrid({ queryParams: form2Json("searchform") });
    });
    //点击新增
    $("#bt_add").linkbutton({ iconCls: 'icon-add', plain: true }).click(addLocalUser);
})

//新增用户
function addLocalUser(){
    //清空表单
    //form('reset')则只会清空日期框，不会清空combobox。
    $('#form_addmodify').form('reset');
    $('#id_user_id').textbox({prompt:'X'});
    $('#id_create_time').textbox({prompt:'不用填写'});
    $('#id_last_edit_time').textbox({prompt:'不用填写'});
    $('#id_select_status').textbox({prompt:'请选择'});
    //$('#id_select_status').combobox('select','0');
    $('#dialog_addmodify').dialog('open').dialog('setTitle','新增用户');
    //将窗口中的保存按钮修改为新增操作
    $("#btn_addmodify").unbind("click");
    $("#btn_addmodify").linkbutton({ text:'新增' });
    //必须先解除绑定，再重新绑定，否则可能会出现重复响应。
    $("#btn_addmodify").bind("click", function() {
        $.messager.confirm('Confirm','确定要添加用户?',function(r){
            if (r){
                $.ajax({
                    type:'POST',
                    url:contextPath()+'/auth/addLocalUser',
                    data:form2JsonStr('form_addmodify'),
                    dataType:'json',
                    contentType: 'application/json',
                    beforeSend: function () {
                        $.messager.progress({
                            title: '提示',
                            msg: '操作进行中，请稍候……',
                            text: ''
                        });
                    },
                    complete: function () {
                        $.messager.progress('close');
                    },
                    success:function(result){
                        if (result.success){
                            $('#datagrid').datagrid('reload');	// reload data
                            $('#dialog_addmodify').dialog('close');
                            $.messager.show({
                                title: 'Success',
                                msg: '操作完成！'
                            });
                        } else {
                            $.messager.show({	// show error message
                                title: 'Error',
                                msg: result.errMsg
                            });
                        }
                    }
                });
            }
        });
    });
}

//修改用户信息
function modifyLocalUser(index, status){
    //获得表格所有行
    var rows = $("#datagrid").datagrid('getRows');
    //获取表单信息
    var row = rows[index];
    if (row){
        //往表单中注入未修改前的信息
        $('#form_addmodify').form('load',row);
        $('#dialog_addmodify').dialog('open').dialog('setTitle','修改信息');
        //将userid输入栏的编辑状态修改为不能编辑
        $('#id_user_id').textbox('readonly',true);
        //将窗口中的保存按钮修改为保存操作
        $("#btn_addmodify").linkbutton({ text:'修改' });
        $("#btn_addmodify").unbind("click");
        //必须先解除绑定，再重新绑定，否则可能会出现重复响应。
        $("#btn_addmodify").bind("click", function() {
            $.messager.confirm('Confirm','确定要更新该用户信息?',function(r){
                if (r){
                    $.ajax({
                        type:'POST',
                        url:contextPath()+'/auth/modifyLocalUser',
                        data:form2JsonStr('form_addmodify'),
                        dataType:'json',
                        contentType: 'application/json',
                        beforeSend: function () {
                            $.messager.progress({
                                title: '提示',
                                msg: '操作进行中，请稍候……',
                                text: ''
                            });
                        },
                        complete: function () {
                            $.messager.progress('close');
                        },
                        success:function(result){
                            if (result.success){
                                $('#datagrid').datagrid('reload');	// reload data
                                $('#dialog_addmodify').dialog('close');
                                $.messager.show({
                                    title: 'Success',
                                    msg: '操作完成！'
                                });
                            } else {
                                $.messager.show({	// show error message
                                    title: 'Error',
                                    msg: result.errMsg
                                });
                            }
                        }
                    });
                }
            });
        });
    }
}


//变更用户状态
function changeUserStatus(index, status){
    var rows = $("#datagrid").datagrid('getRows');//获得所有行
    var row = rows[index];
    if (row){
        var status_info = "";
        for(i=0; i<UserStateEnum.length; i++) {
            if (UserStateEnum[i].state == status) {
                status_info = UserStateEnum[i].stateinfo ;
                break;
            }
        }
        $.messager.confirm('Confirm',"确定要将用户【"+row.name_cn+"】状态变更为【"+status_info+"】?",function(r){
            if (r){
                $.post(contextPath()+'/auth/changeLocalUserStatus',{user_id:row.user_id,status:status},function(result){
                    if (result.success){
                        $('#datagrid').datagrid('reload');	// reload data
                        $.messager.show({
                            title: 'Success',
                            msg: '操作完成！'
                        });
                    } else {
                        $.messager.show({	// show error message
                            title: 'Error',
                            msg: result.errMsg
                        });
                    }
                },'json');
            }
        });
    }
}

//修改用户密码
function modifypassword(index, status){
    var rows = $("#datagrid").datagrid('getRows');//获得所有行
    var row = rows[index];
    if (row){
        $('#form_modifypassword').form('reset');
        $('#dialog_modifypassword').dialog('open').dialog('setTitle','修改【'+row.name_cn+'】用户密码');
        $("#btn_modifypassword").unbind("click");
        //必须先解除绑定，再重新绑定，否则可能会出现重复响应。
        $("#btn_modifypassword").bind("click", function() {
            $.messager.confirm('Confirm','确定要修改密码?',function(r){
                if (r){
                    $.post(contextPath()+'/auth/modifyPassword',{user_id:row.user_id,password:$('#id_modifypassword').textbox('getValue')},function(result){
                        if (result.success){
                            $('#datagrid').datagrid('reload');	// reload data
                            $('#dialog_modifypassword').dialog('close');
                            $.messager.show({
                                title: 'Success',
                                msg: '操作完成！'
                            });
                        } else {
                            $.messager.show({	// show error message
                                title: 'Error',
                                msg: result.errMsg
                            });
                        }
                    },'json');
                }
            });
        });

    }
}

//删除用户信息
function removeLocalUser(index, status){
    var rows = $("#datagrid").datagrid('getRows');//获得所有行
    var row = rows[index];
    if (row){
        $.messager.confirm('Confirm',"危险操作！本操作不可恢复！<br>确定删除【"+row.name_cn+"】的用户信息?",function(r){
            if (r){
                $.post(contextPath()+'/auth/removeLocalUser',{user_id:row.user_id,username:r},function(result){
                    if (result.success){
                        $('#datagrid').datagrid('reload');	// reload data
                        $.messager.show({
                            title: 'Success',
                            msg: '操作完成！'
                        });
                    } else {
                        $.messager.show({	// show error message
                            title: 'Error',
                            msg: result.errMsg
                        });
                    }
                },'json');
            }
        });
    }
}